perm filename TVSER.SAI[SYS,HE] blob
sn#067953 filedate 1973-10-19 generic text, type C, neo UTF8
COMMENT ⊗ VALID 00003 PAGES
C REC PAGE DESCRIPTION
C00001 00001
C00002 00002 ⊃ Needs the following to be declared or defined:
C00005 00003 PROCEDURE SETWINDOW
C00007 ENDMK
C⊗;
⊃ Needs the following to be declared or defined:
INTEGER EXFLAG,MINI,MAXI INTEGER ARRAY HIST[-1:16] DEFINE WINDOW,CRLF,⊃;
PROCEDURE INPUT;
BEGIN "INPUT"
EXTERNAL PROCEDURE TVIN;
EXTERNAL INTEGER TCLIP,BCLIP,FLINE,LLINE,LSIDE,RSIDE,TVCAM;
IF ((TVCAM←LOOK_AT[1])≠1)∧(TVCAM≠2) THEN BEGIN
OUTSTR("INPUT-FAILED: ILLEGAL CAM NO. (TVCAM="&CVS(TVCAM)&")"CRLF);
EXFLAG←1; RETURN; END;
IF ((LSIDE←LOOK_AT[2]-(LOOK_AT[4] DIV 2))<1)∨
((RSIDE←LSIDE+LOOK_AT[4]-1)>330)∨(RSIDE≤LSIDE)∨
((FLINE←LOOK_AT[3]-(LOOK_AT[5] DIV 2))<1)∨
((LLINE←FLINE+LOOK_AT[5]-1)>250)∨(LLINE≤FLINE)
THEN BEGIN OUTSTR("INPUT-FAILED: ILLEGAL WINDOW"CRLF);
EXFLAG←1; RETURN; END;
IF ((BCLIP←LOOK_AT[7])<0)∨(BCLIP>7)∨((TCLIP←LOOK_AT[6])<0)∨
(TCLIP>7)∨(TCLIP>BCLIP) THEN BEGIN
OUTSTR("INPUT-FAILED: ILLEGAL CLIPS (TCLIP="&CVS(TCLIP)&
" BCLIP="&CVS(BCLIP)&")"CRLF); EXFLAG←1; RETURN; END;
TVIN;
END "INPUT";
PROCEDURE HISTO;
BEGIN INTEGER I,X,Y;
EXTERNAL INTEGER PROCEDURE GETPNT(INTEGER X,Y);
⊃ Compute the histogram;
FOR I←0 STEP 1 UNTIL 15 DO HIST[I]←0;
FOR WINDOW DO BEGIN
I←GETPNT(X,Y); HIST[I]←HIST[I]+1; END;
⊃ Find boundary levels;
I←0; WHILE (HIST[I]=0)∧(I<15) DO I←I+1; MINI←I;
I←15; WHILE (HIST[I]=0)∧(I>0) DO I←I-1; MAXI←I;
IF DEB_EYE THEN OUTSTR("HISTO: MINI="&CVS(MINI)&" MAXI="&CVS(MAXI)CRLF);
END "HISTO";
SIMPLE PROCEDURE SETCLIP;
BEGIN INTEGER X,Y;
LOOK_AT[6]←0; LOOK_AT[7]←7; INPUT; IF EXFLAG≠0 THEN RETURN; HISTO;
LOOK_AT[6]←(15-MAXI) DIV 2; LOOK_AT[7]←(15-MINI) DIV 2
END"SETCLIP";
PROCEDURE SETWINDOW;
BEGIN INTEGER XPOT,YPOT,MAN,FLAG;
LABEL WOD;
EXTERNAL INTEGER PROCEDURE POTABS(INTEGER CHAN;REFERENCE INTEGER FLAGO);
LOOK_AT[6]←0; LOOK_AT[7]←7;
WOD: OUTSTR("...TYPE CAMERA NO.="CRLF); LOOK_AT[1]←CVD(INCHWL);
OUTSTR("...TYPE WIDTH OF WINDOW="CRLF); LOOK_AT[4]←CVD(INCHWL);
OUTSTR("...TYPE HIGHT OF WINDOW="CRLF); LOOK_AT[5]←CVD(INCHWL);
OUTSTR("...TYPE Y TO SET CENTER OF WINDOW FROM POTBOX:"CRLF);
IF YES THEN BEGIN MAN←1;
OUTSTR("...CHANGE POTS 12 AND 13 TO MOVE THE WINDOW ..."CRLF); END
ELSE BEGIN MAN←0;
OUTSTR("...TYPE X COORDINATE OF WINDOW CENTER="CRLF);
LOOK_AT[2]←CVD(INCHWL);
OUTSTR("...TYPE Y COORDINATE OF WINDOW CENTER="CRLF);
LOOK_AT[3]←CVD(INCHWL); END;
OUTSTR("...TYPE Y WHEN DONE,OR R TO RESTART:"CRLF);
FLAG←1;
WHILE FLAG DO BEGIN IF INCHSL(FLAG)="R" THEN GOTO WOD;
IF MAN=1 THEN BEGIN
XPOT←POTABS(1,DUMMY);
YPOT←POTABS(2,DUMMY);
LOOK_AT[2]←167+XPOT/13; LOOK_AT[3]←125+YPOT/17; END;
INPUT; IF EXFLAG≠0 THEN BEGIN EXFLAG←0; GOTO WOD; END;
END;
CLRBUF;
END "SETWINDOW";